The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.
Collaborative projects typically require extensive use of document authoring applications. Members of a project team may create documents at their computer using various document authoring applications, and then share those documents with other members of the project team. The other members may view and utilize the information in these shared documents using document authoring applications at other computers.
One way for a project member to share information with another project member is to share an image. An image may communicate information in a variety of ways. For example, an image may depict a chart, graph, map, picture, or textual passage.
One way for a project member to produce an image to share with other project members is for the project member to utilize image generation functionality in a document authoring application. For example, a document authoring application may allow a user to generate images of charts or graphs produced in the course of working with a report document. As another example, a document authoring application may also allow a user to generate a screenshot image of information currently depicted in the application. These images may then be shared with other project members.
Although image sharing is useful for quickly communicating a limited amount of information, a weakness of the above-described techniques is that the techniques do not provide other project members with access to any information other than the information depicted in the image. Nor does the technique allow other project members to use or edit the information depicted in the image.
For example, a first project member may use a document authoring application to create a reporting document with very detailed data regarding stock prices over the course of several years. Using the document authoring application, the project member may then produce an image of a graph that summarizes the detailed data. The first project member may then share that image with other project members. While the other project members would be able to quickly interpret the summary information depicted in the graph, the other project members would be unable to access the more detailed data stored in the reporting document.
One solution to this problem would be for the first project member to send the reporting document to the other project members instead of the image. However, this solution has several drawbacks. First, the solution creates unnecessary copies of the reporting document. The unnecessary copies waste space, create security risks, and introduce potential data synchronization problems. Second, without sharing the image, the first project member loses the benefit of the image's efficiency in quickly communicating an overview of the information in the reporting document. Third, the solution is more labor-intensive for the first project member, since the solution requires the first project member to locate the reporting document in a file system so that it can be attached to an email or otherwise sent to the other project members.
Existing techniques for using document authoring applications are inefficient for a number of reasons. For example, users of document authoring applications often find it necessary to switch quickly to other documents or tasks. In switching to another document or task, a user must often close his or her current document. To avoid losing work on a currently open document, the user is required to save the currently open document before closing it. This requirement slows down the speed with which a user may switch to another document or task. Moreover, a user can sometimes forget to save the currently open document and consequently lose work.
Application designers have proposed various techniques to solve these problems. One such technique is to automatically save changes to a currently open document when the application is caused to close the document. However, this technique is undesirable because the user may not have intended to save the changes, or the user may have intended to save the changes as a different version of the document so that the original version of the document is not overwritten. Another technique prompts the user to confirm that the document should or should not be saved before closing the document. However, this technique still decreases the speed with which the user may switch documents or tasks.
Another technique relies on automatically saving a document periodically in a single auto-saved version. If a document is closed without a save operation having been performed, the auto-saved version may be used to recover unsaved information. For example, upon resumption of an application, the application may check to see whether any auto-saved versions exist. If an auto-saved version does exist, the user is prompted to save or discard the auto-saved version. However, this technique merely shifts the transaction time required for a save operation to a later time. In fact, this technique may create more work for a user, in that the user may be required to locate the auto-saved file and/or save the auto-saved version over the last saved version. Furthermore, a user will still lose any changes made between the time of the last auto-save and the time the document was closed.
As another example of inefficiency in existing techniques for using document authoring applications, consider the task of sharing documents between users of document authoring applications at different systems. A common technique for sharing documents is to email the documents. However, this technique may be inefficient in certain situations. For example, users who share documents in this manner are typically subjected to at least some time delay while waiting for an email to arrive. This technique also results in extraneous copies of the same data. In the event a user wishes to edit data from a shared document, they must also email those changes back to original document author, who must be sure to replace his or her document with the changed version.
Another approach for sharing documents is to store documents on a centralized server. This approach requires a user to know how to use their operating system to navigate to the server and locate the shared documents. This technique further requires that an original document author notify other members of a project team of the existence and location of new documents. The time required to navigate the server and communicate messages regarding the existence and location of new documents represent inefficiencies in the collaborative process.
Other approaches use complex document management or version control applications that require check-in and check-out of documents.